6c658f71dbd06baf7c954b05ef9618f409b633f9,modules/wyil/src/wyil/util/interpreter/Interpreter.java,Interpreter,execute,#Bytecode.Convert#Constant[]#Context#,274
Before Change
private Object execute(Bytecode.Convert bytecode, Constant[] frame, Context context) {
try {
Constant operand = frame[bytecode.operand(0)];
Type target = expander.getUnderlyingType(bytecode.type());
frame[bytecode.target(0)] = convert(operand, target, context);
return context.pc.next();
After Change
}
}
private Status execute(Bytecode.While bytecode, Constant[] frame, Context context) {
Status r;
do {
Constant value = executeSingle(bytecode.operand(0), frame, context);
Constant.Bool operand = checkType(value,context,Constant.Bool.class);
if(!operand.value()) { return Status.NEXT; }
// Keep executing the loop body until we exit it somehow.
r = executeAllWithin(frame, context.subBlockContext(bytecode.body()));
} while (r == Status.NEXT || r == Status.CONTINUE);
// If we get here, then we have exited the loop body without falling
// through to the next bytecode.